home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 1 / LSD Compendium Deluxe 1.iso / a / programming / assembly / ellipseasm.lha / ellipse.code < prev    next >
Mailbox/MIME Entity  |  1989-10-24  |  7.7 KB

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text

This file was processed as: Mailbox/MIME Entity (archive/mbox).

You can browse this item here: ellipse.code

ConfidenceProgramDetectionMatch TypeSupport
100% dexvert Mailbox/MIME Entity (archive/mbox) magic Supported
100% dexvert Internet Message Format (text/imf) magic Supported
1% dexvert Text File (text/txt) fallback Supported
100% file Mailbox text, 1st line "From albanycs!leah:rsb584 Sat Jan 9 13:58:34 1988" default
99% file C source text default
98% file C source, ASCII text default
100% TrID E-Mail message (Var. 2) default
100% checkBytes Printable ASCII default
100% perlTextCheck Likely Text (Perl) default
100% siegfried x-fmt/111 Plain Text File default
100% detectItEasy Format: plain text[LF] default (weak)
100% xdgMime application/mbox default



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 46 72 6f 6d 20 61 6c 62 | 61 6e 79 63 73 21 6c 65 |From alb|anycs!le|
|00000010| 61 68 3a 72 73 62 35 38 | 34 20 53 61 74 20 4a 61 |ah:rsb58|4 Sat Ja|
|00000020| 6e 20 20 39 20 31 33 3a | 35 38 3a 33 34 20 31 39 |n 9 13:|58:34 19|
|00000030| 38 38 0a 52 65 63 65 69 | 76 65 64 3a 20 62 79 20 |88.Recei|ved: by |
|00000040| 61 6c 62 61 6e 79 63 73 | 2e 61 6c 62 61 6e 79 2e |albanycs|.albany.|
|00000050| 65 64 75 20 28 35 2e 35 | 34 2f 34 2e 38 29 0a 09 |edu (5.5|4/4.8)..|
|00000060| 69 64 20 41 41 30 37 32 | 31 39 3b 20 53 61 74 2c |id AA072|19; Sat,|
|00000070| 20 39 20 4a 61 6e 20 38 | 38 20 31 33 3a 31 38 3a | 9 Jan 8|8 13:18:|
|00000080| 30 31 20 45 53 54 0a 44 | 61 74 65 3a 20 53 61 74 |01 EST.D|ate: Sat|
|00000090| 2c 20 39 20 4a 61 6e 20 | 38 38 20 31 33 3a 31 37 |, 9 Jan |88 13:17|
|000000a0| 3a 35 38 20 45 53 54 0a | 46 72 6f 6d 3a 20 61 6c |:58 EST.|From: al|
|000000b0| 62 61 6e 79 63 73 21 6c | 65 61 68 3a 72 73 62 35 |banycs!l|eah:rsb5|
|000000c0| 38 34 20 28 20 52 61 79 | 6d 6f 6e 64 20 53 20 42 |84 ( Ray|mond S B|
|000000d0| 72 61 6e 64 29 0a 52 65 | 63 65 69 76 65 64 3a 20 |rand).Re|ceived: |
|000000e0| 62 79 20 6c 65 61 68 2e | 41 6c 62 61 6e 79 2e 45 |by leah.|Albany.E|
|000000f0| 44 55 20 28 35 2e 35 38 | 2f 31 2e 31 29 0a 09 69 |DU (5.58|/1.1)..i|
|00000100| 64 20 41 41 31 32 35 31 | 35 3b 20 53 61 74 2c 20 |d AA1251|5; Sat, |
|00000110| 39 20 4a 61 6e 20 38 38 | 20 31 33 3a 31 37 3a 35 |9 Jan 88| 13:17:5|
|00000120| 38 20 45 53 54 0a 4d 65 | 73 73 61 67 65 2d 49 64 |8 EST.Me|ssage-Id|
|00000130| 3a 20 3c 38 38 30 31 30 | 39 31 38 31 37 2e 41 41 |: <88010|91817.AA|
|00000140| 31 32 35 31 35 40 6c 65 | 61 68 2e 41 6c 62 61 6e |12515@le|ah.Alban|
|00000150| 79 2e 45 44 55 3e 0a 54 | 6f 3a 20 61 6c 62 61 6e |y.EDU>.T|o: alban|
|00000160| 79 63 73 3a 62 65 6f 77 | 75 6c 66 21 72 73 62 78 |ycs:beow|ulf!rsbx|
|00000170| 0a 0a 3e 46 72 6f 6d 20 | 6a 61 63 6b 6d 40 64 65 |..>From |jackm@de|
|00000180| 76 76 61 78 2e 4a 50 4c | 2e 4e 41 53 41 2e 47 4f |vvax.JPL|.NASA.GO|
|00000190| 56 20 46 72 69 20 4a 61 | 6e 20 20 38 20 31 31 3a |V Fri Ja|n 8 11:|
|000001a0| 32 31 3a 30 39 20 31 39 | 38 38 0a 50 61 74 68 3a |21:09 19|88.Path:|
|000001b0| 20 6c 65 61 68 21 75 77 | 6d 63 73 64 31 21 62 62 | leah!uw|mcsd1!bb|
|000001c0| 6e 21 6f 62 65 72 6f 6e | 21 63 69 74 2d 76 61 78 |n!oberon|!cit-vax|
|000001d0| 21 65 6c 72 6f 79 21 64 | 65 76 76 61 78 21 6a 61 |!elroy!d|evvax!ja|
|000001e0| 63 6b 6d 0a 46 72 6f 6d | 3a 20 6a 61 63 6b 6d 40 |ckm.From|: jackm@|
|000001f0| 64 65 76 76 61 78 2e 4a | 50 4c 2e 4e 41 53 41 2e |devvax.J|PL.NASA.|
|00000200| 47 4f 56 20 28 4a 61 63 | 6b 20 4d 6f 72 72 69 73 |GOV (Jac|k Morris|
|00000210| 6f 6e 29 0a 4e 65 77 73 | 67 72 6f 75 70 73 3a 20 |on).News|groups: |
|00000220| 63 6f 6d 70 2e 67 72 61 | 70 68 69 63 73 0a 53 75 |comp.gra|phics.Su|
|00000230| 62 6a 65 63 74 3a 20 52 | 65 3a 20 63 69 72 63 6c |bject: R|e: circl|
|00000240| 65 73 20 77 69 74 68 20 | 6e 6f 6e 2d 75 6e 69 74 |es with |non-unit|
|00000250| 79 20 61 73 70 65 63 74 | 20 72 61 74 69 6f 20 28 |y aspect| ratio (|
|00000260| 45 6c 6c 69 70 73 65 73 | 21 20 4c 4f 4e 47 2c 20 |Ellipses|! LONG, |
|00000270| 77 2f 63 6f 64 65 29 0a | 4b 65 79 77 6f 72 64 73 |w/code).|Keywords|
|00000280| 3a 20 63 69 72 63 6c 65 | 73 2c 20 65 6c 6c 69 70 |: circle|s, ellip|
|00000290| 73 65 73 2c 20 61 6c 67 | 6f 72 69 74 68 6d 73 0a |ses, alg|orithms.|
|000002a0| 4d 65 73 73 61 67 65 2d | 49 44 3a 20 3c 39 37 31 |Message-|ID: <971|
|000002b0| 40 64 65 76 76 61 78 2e | 4a 50 4c 2e 4e 41 53 41 |@devvax.|JPL.NASA|
|000002c0| 2e 47 4f 56 3e 0a 44 61 | 74 65 3a 20 38 20 4a 61 |.GOV>.Da|te: 8 Ja|
|000002d0| 6e 20 38 38 20 31 36 3a | 32 31 3a 30 39 20 47 4d |n 88 16:|21:09 GM|
|000002e0| 54 0a 52 65 70 6c 79 2d | 54 6f 3a 20 6a 61 63 6b |T.Reply-|To: jack|
|000002f0| 6d 40 64 65 76 76 61 78 | 2e 4a 50 4c 2e 4e 41 53 |m@devvax|.JPL.NAS|
|00000300| 41 2e 47 4f 56 20 28 4a | 61 63 6b 20 4d 6f 72 72 |A.GOV (J|ack Morr|
|00000310| 69 73 6f 6e 29 0a 4f 72 | 67 61 6e 69 7a 61 74 69 |ison).Or|ganizati|
|00000320| 6f 6e 3a 20 4a 65 74 20 | 50 72 6f 70 75 6c 73 69 |on: Jet |Propulsi|
|00000330| 6f 6e 20 4c 61 62 6f 72 | 61 74 6f 72 79 2c 20 50 |on Labor|atory, P|
|00000340| 61 73 61 64 65 6e 61 2c | 20 43 41 2e 0a 4c 69 6e |asadena,| CA..Lin|
|00000350| 65 73 3a 20 32 33 32 0a | 0a 41 20 66 65 77 20 72 |es: 232.|.A few r|
|00000360| 65 71 75 65 73 74 73 20 | 66 6f 72 20 65 6c 6c 69 |equests |for elli|
|00000370| 70 73 65 73 20 68 61 76 | 65 20 70 72 6f 6d 70 74 |pses hav|e prompt|
|00000380| 65 64 20 6d 65 20 74 6f | 20 69 6e 63 6c 75 64 65 |ed me to| include|
|00000390| 20 74 68 69 73 20 63 6f | 64 65 2e 20 49 74 0a 64 | this co|de. It.d|
|000003a0| 72 61 77 73 20 65 6c 6c | 69 70 73 65 73 20 28 69 |raws ell|ipses (i|
|000003b0| 6e 63 6c 75 64 69 6e 67 | 20 63 69 72 63 6c 65 73 |ncluding| circles|
|000003c0| 2c 20 6f 66 20 63 6f 75 | 72 73 65 29 20 6f 66 20 |, of cou|rse) of |
|000003d0| 76 61 72 79 69 6e 67 20 | 6c 69 6e 65 20 77 69 64 |varying |line wid|
|000003e0| 74 68 0a 6f 6e 20 61 20 | 53 55 4e 20 62 69 74 6d |th.on a |SUN bitm|
|000003f0| 61 70 20 64 69 73 70 6c | 61 79 2e 20 28 49 74 27 |ap displ|ay. (It'|
|00000400| 73 20 70 61 72 74 20 6f | 66 20 61 20 70 61 69 6e |s part o|f a pain|
|00000410| 74 2d 74 79 70 65 20 70 | 72 6f 67 72 61 6d 29 2e |t-type p|rogram).|
|00000420| 20 49 20 64 6f 6e 27 74 | 0a 6b 6e 6f 77 20 68 6f | I don't|.know ho|
|00000430| 77 20 74 68 69 73 20 63 | 6f 6d 70 61 72 65 73 20 |w this c|ompares |
|00000440| 74 6f 20 74 68 65 20 65 | 61 72 6c 69 65 72 20 70 |to the e|arlier p|
|00000450| 6f 73 74 69 6e 67 20 6f | 66 20 61 6e 20 65 6c 6c |osting o|f an ell|
|00000460| 69 70 73 65 20 61 6c 67 | 6f 72 69 74 68 6d 2c 0a |ipse alg|orithm,.|
|00000470| 62 75 74 20 69 74 27 73 | 20 66 61 69 72 6c 79 20 |but it's| fairly |
|00000480| 66 61 73 74 2e 0a 0a 45 | 6e 6a 6f 79 20 6f 72 20 |fast...E|njoy or |
|00000490| 66 6c 61 6d 65 2e 2e 2e | 2e 0a 0a 3d 3d 3d 3d 3d |flame...|...=====|
|000004a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000004b0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000004c0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000004d0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000004e0| 0a 0a 2f 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |../*****|********|
|000004f0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000500| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000510| 2a 2a 2f 0a 2f 2a 20 67 | 72 65 64 5f 65 6c 6c 69 |**/./* g|red_elli|
|00000520| 70 73 65 2e 63 20 2d 20 | 64 72 61 77 20 65 6c 6c |pse.c - |draw ell|
|00000530| 69 70 73 65 73 09 09 2a | 0a 2f 2a 20 61 6c 67 6f |ipses..*|./* algo|
|00000540| 72 69 74 68 6d 20 66 72 | 6f 6d 20 49 45 45 45 20 |rithm fr|om IEEE |
|00000550| 43 47 26 41 20 53 65 70 | 74 20 31 39 38 34 20 70 |CG&A Sep|t 1984 p|
|00000560| 2e 32 34 20 09 2a 0a 2f | 2a 2a 2a 2a 2a 2a 2a 2a |.24 .*./|********|
|00000570| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000580| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000590| 2a 2a 2a 2a 2a 2a 2a 2f | 0a 23 69 6e 63 6c 75 64 |*******/|.#includ|
|000005a0| 65 20 3c 73 74 64 69 6f | 2e 68 3e 0a 23 69 6e 63 |e <stdio|.h>.#inc|
|000005b0| 6c 75 64 65 20 3c 73 75 | 6e 77 69 6e 64 6f 77 2f |lude <su|nwindow/|
|000005c0| 77 69 6e 64 6f 77 5f 68 | 73 2e 68 3e 0a 0a 67 72 |window_h|s.h>..gr|
|000005d0| 65 64 5f 65 6c 6c 69 70 | 73 65 20 28 63 78 2c 20 |ed_ellip|se (cx, |
|000005e0| 63 79 2c 20 72 61 64 69 | 75 73 5f 78 2c 20 72 61 |cy, radi|us_x, ra|
|000005f0| 64 69 75 73 5f 79 2c 20 | 6c 69 6e 65 5f 77 69 64 |dius_y, |line_wid|
|00000600| 74 68 2c 20 70 77 2c 20 | 70 61 74 74 65 72 6e 5f |th, pw, |pattern_|
|00000610| 70 72 29 0a 69 6e 74 20 | 20 20 09 09 09 63 78 2c |pr).int | ...cx,|
|00000620| 20 63 79 3b 0a 69 6e 74 | 20 20 20 09 09 09 72 61 | cy;.int| ...ra|
|00000630| 64 69 75 73 5f 78 2c 20 | 72 61 64 69 75 73 5f 79 |dius_x, |radius_y|
|00000640| 3b 0a 69 6e 74 09 09 09 | 6c 69 6e 65 5f 77 69 64 |;.int...|line_wid|
|00000650| 74 68 3b 0a 73 74 72 75 | 63 74 20 70 69 78 77 69 |th;.stru|ct pixwi|
|00000660| 6e 20 09 09 2a 70 77 3b | 0a 73 74 72 75 63 74 20 |n ..*pw;|.struct |
|00000670| 70 69 78 72 65 63 74 20 | 09 09 2a 70 61 74 74 65 |pixrect |..*patte|
|00000680| 72 6e 5f 70 72 3b 0a 7b | 0a 20 20 20 20 73 74 72 |rn_pr;.{|. str|
|00000690| 75 63 74 20 70 69 78 72 | 65 63 74 20 09 2a 70 72 |uct pixr|ect .*pr|
|000006a0| 3b 0a 20 20 20 20 69 6e | 74 09 09 09 69 6e 6e 65 |;. in|t...inne|
|000006b0| 72 5f 72 61 64 69 75 73 | 5f 78 3b 0a 20 20 20 20 |r_radius|_x;. |
|000006c0| 69 6e 74 09 09 09 69 6e | 6e 65 72 5f 72 61 64 69 |int...in|ner_radi|
|000006d0| 75 73 5f 79 3b 0a 20 20 | 20 20 69 6e 74 09 09 09 |us_y;. | int...|
|000006e0| 6f 75 74 65 72 5f 72 61 | 64 69 75 73 5f 78 3b 0a |outer_ra|dius_x;.|
|000006f0| 20 20 20 20 69 6e 74 09 | 09 09 6f 75 74 65 72 5f | int.|..outer_|
|00000700| 72 61 64 69 75 73 5f 79 | 3b 0a 0a 2f 2a 2a 2a 2a |radius_y|;../****|
|00000710| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000720| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000730| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000740| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2f |********|*******/|
|00000750| 0a 2f 2a 20 43 61 6c 63 | 75 6c 61 74 65 20 74 68 |./* Calc|ulate th|
|00000760| 65 20 69 6e 6e 65 72 2c | 20 6f 75 74 65 72 20 72 |e inner,| outer r|
|00000770| 61 64 69 75 73 65 73 20 | 6f 66 20 74 68 65 20 65 |adiuses |of the e|
|00000780| 6c 6c 69 70 73 65 20 20 | 20 20 20 20 20 20 20 20 |llipse | |
|00000790| 20 20 20 20 2a 2f 0a 2f | 2a 2a 2a 2a 2a 2a 2a 2a | */./|********|
|000007a0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000007b0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000007c0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000007d0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2f 0a 20 20 20 |********|***/. |
|000007e0| 20 2f 2a 20 69 66 20 6f | 6e 65 20 70 69 78 65 6c | /* if o|ne pixel|
|000007f0| 20 77 69 64 65 2c 20 72 | 61 64 69 75 73 65 73 20 | wide, r|adiuses |
|00000800| 61 72 65 20 73 61 6d 65 | 20 2a 2f 0a 20 20 20 20 |are same| */. |
|00000810| 69 66 20 28 6c 69 6e 65 | 5f 77 69 64 74 68 20 3c |if (line|_width <|
|00000820| 20 32 29 0a 20 20 20 20 | 7b 0a 09 69 6e 6e 65 72 | 2). |{..inner|
|00000830| 5f 72 61 64 69 75 73 5f | 78 20 3d 20 6f 75 74 65 |_radius_|x = oute|
|00000840| 72 5f 72 61 64 69 75 73 | 5f 78 20 3d 20 72 61 64 |r_radius|_x = rad|
|00000850| 69 75 73 5f 78 3b 0a 09 | 69 6e 6e 65 72 5f 72 61 |ius_x;..|inner_ra|
|00000860| 64 69 75 73 5f 79 20 3d | 20 6f 75 74 65 72 5f 72 |dius_y =| outer_r|
|00000870| 61 64 69 75 73 5f 79 20 | 3d 20 72 61 64 69 75 73 |adius_y |= radius|
|00000880| 5f 79 3b 0a 20 20 20 20 | 7d 0a 20 20 20 20 65 6c |_y;. |}. el|
|00000890| 73 65 0a 20 20 20 20 7b | 0a 09 6f 75 74 65 72 5f |se. {|..outer_|
|000008a0| 72 61 64 69 75 73 5f 78 | 20 3d 20 72 61 64 69 75 |radius_x| = radiu|
|000008b0| 73 5f 78 20 2b 20 28 6c | 69 6e 65 5f 77 69 64 74 |s_x + (l|ine_widt|
|000008c0| 68 20 3e 3e 20 31 29 3b | 0a 09 6f 75 74 65 72 5f |h >> 1);|..outer_|
|000008d0| 72 61 64 69 75 73 5f 79 | 20 3d 20 72 61 64 69 75 |radius_y| = radiu|
|000008e0| 73 5f 79 20 2b 20 28 6c | 69 6e 65 5f 77 69 64 74 |s_y + (l|ine_widt|
|000008f0| 68 20 3e 3e 20 31 29 3b | 0a 09 69 6e 6e 65 72 5f |h >> 1);|..inner_|
|00000900| 72 61 64 69 75 73 5f 78 | 20 3d 20 6f 75 74 65 72 |radius_x| = outer|
|00000910| 5f 72 61 64 69 75 73 5f | 78 20 2d 20 6c 69 6e 65 |_radius_|x - line|
|00000920| 5f 77 69 64 74 68 20 2b | 20 31 3b 0a 09 69 6e 6e |_width +| 1;..inn|
|00000930| 65 72 5f 72 61 64 69 75 | 73 5f 79 20 3d 20 6f 75 |er_radiu|s_y = ou|
|00000940| 74 65 72 5f 72 61 64 69 | 75 73 5f 79 20 2d 20 6c |ter_radi|us_y - l|
|00000950| 69 6e 65 5f 77 69 64 74 | 68 20 2b 20 31 3b 0a 20 |ine_widt|h + 1;. |
|00000960| 20 20 20 7d 0a 0a 2f 2a | 2a 2a 2a 2a 2a 2a 2a 2a | }../*|********|
|00000970| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000980| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000990| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000009a0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2f 0a 2f 2a 20 43 |********|**/./* C|
|000009b0| 72 65 61 74 65 20 61 20 | 70 69 78 72 65 63 74 20 |reate a |pixrect |
|000009c0| 74 6f 20 62 75 69 6c 64 | 20 74 68 65 20 65 6c 6c |to build| the ell|
|000009d0| 69 70 73 65 20 69 6e 2e | 20 20 20 20 20 20 20 20 |ipse in.| |
|000009e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 2a | | *|
|000009f0| 2f 0a 2f 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |/./*****|********|
|00000a00| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000a10| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000a20| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000a30| 2a 2a 2a 2a 2a 2a 2f 0a | 20 20 20 20 70 72 20 3d |******/.| pr =|
|00000a40| 20 6d 65 6d 5f 63 72 65 | 61 74 65 20 28 28 6f 75 | mem_cre|ate ((ou|
|00000a50| 74 65 72 5f 72 61 64 69 | 75 73 5f 78 20 3c 3c 20 |ter_radi|us_x << |
|00000a60| 31 29 20 2b 20 31 2c 20 | 28 6f 75 74 65 72 5f 72 |1) + 1, |(outer_r|
|00000a70| 61 64 69 75 73 5f 79 20 | 3c 3c 20 31 29 20 2b 20 |adius_y |<< 1) + |
|00000a80| 31 2c 20 31 29 3b 0a 20 | 20 20 20 2f 2a 20 6e 6f |1, 1);. | /* no|
|00000a90| 77 20 63 6c 65 61 72 20 | 69 74 20 2a 2f 0a 20 20 |w clear |it */. |
|00000aa0| 20 20 70 72 5f 72 6f 70 | 20 28 70 72 2c 09 30 2c | pr_rop| (pr,.0,|
|00000ab0| 20 30 2c 20 70 72 20 2d | 3e 20 70 72 5f 73 69 7a | 0, pr -|> pr_siz|
|00000ac0| 65 2e 78 2c 20 70 72 20 | 2d 3e 20 70 72 5f 73 69 |e.x, pr |-> pr_si|
|00000ad0| 7a 65 2e 79 2c 0a 09 09 | 50 49 58 5f 43 4c 52 2c |ze.y,...|PIX_CLR,|
|00000ae0| 20 28 73 74 72 75 63 74 | 20 70 69 78 72 65 63 74 | (struct| pixrect|
|00000af0| 20 2a 29 20 30 2c 20 30 | 2c 20 30 29 3b 0a 0a 2f | *) 0, 0|, 0);../|
|00000b00| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000b10| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000b20| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000b30| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000b40| 2a 2a 2a 2f 0a 2f 2a 20 | 49 66 20 74 68 65 20 69 |***/./* |If the i|
|00000b50| 6e 6e 65 72 5f 72 61 64 | 69 75 73 20 3e 20 30 20 |nner_rad|ius > 0 |
|00000b60| 74 68 65 6e 20 6f 75 74 | 6c 69 6e 65 20 74 68 65 |then out|line the|
|00000b70| 20 69 6e 6e 65 72 20 65 | 64 67 65 2e 20 20 20 20 | inner e|dge. |
|00000b80| 20 20 20 20 20 20 20 20 | 2a 2f 0a 2f 2a 20 54 68 | |*/./* Th|
|00000b90| 65 6e 20 69 66 20 74 68 | 65 20 6f 75 74 65 72 20 |en if th|e outer |
|00000ba0| 72 61 64 69 75 73 20 6f | 66 20 74 68 65 20 65 6c |radius o|f the el|
|00000bb0| 6c 69 70 73 65 20 69 73 | 20 3e 20 74 68 61 6e 20 |lipse is| > than |
|00000bc0| 74 68 65 20 69 6e 6e 65 | 72 20 20 20 20 20 2a 2f |the inne|r */|
|00000bd0| 0a 2f 2a 20 72 61 64 69 | 75 73 2c 20 63 61 6c 6c |./* radi|us, call|
|00000be0| 20 74 68 65 20 66 69 6c | 6c 20 65 6c 6c 69 70 73 | the fil|l ellips|
|00000bf0| 65 20 72 6f 75 74 69 6e | 65 20 77 69 74 68 20 74 |e routin|e with t|
|00000c00| 68 65 20 6f 75 74 65 72 | 20 72 61 64 69 75 73 2e |he outer| radius.|
|00000c10| 20 20 20 20 2a 2f 0a 2f | 2a 2a 2a 2a 2a 2a 2a 2a | */./|********|
|00000c20| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000c30| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000c40| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000c50| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2f 0a 20 20 20 |********|***/. |
|00000c60| 20 69 66 20 28 28 69 6e | 6e 65 72 5f 72 61 64 69 | if ((in|ner_radi|
|00000c70| 75 73 5f 78 20 3e 20 30 | 29 0a 20 20 20 20 09 20 |us_x > 0|). . |
|00000c80| 20 20 20 26 26 20 28 69 | 6e 6e 65 72 5f 72 61 64 | && (i|nner_rad|
|00000c90| 69 75 73 5f 79 20 3e 20 | 30 29 29 0a 20 20 20 20 |ius_y > |0)). |
|00000ca0| 20 20 20 20 6f 75 74 6c | 69 6e 65 5f 65 6c 6c 69 | outl|ine_elli|
|00000cb0| 70 73 65 20 28 70 72 2c | 20 6f 75 74 65 72 5f 72 |pse (pr,| outer_r|
|00000cc0| 61 64 69 75 73 5f 78 2c | 20 6f 75 74 65 72 5f 72 |adius_x,| outer_r|
|00000cd0| 61 64 69 75 73 5f 79 2c | 20 0a 09 09 69 6e 6e 65 |adius_y,| ...inne|
|00000ce0| 72 5f 72 61 64 69 75 73 | 5f 78 2c 20 69 6e 6e 65 |r_radius|_x, inne|
|00000cf0| 72 5f 72 61 64 69 75 73 | 5f 79 29 3b 0a 0a 20 20 |r_radius|_y);.. |
|00000d00| 20 20 69 66 20 28 6c 69 | 6e 65 5f 77 69 64 74 68 | if (li|ne_width|
|00000d10| 20 3e 3d 20 20 32 29 0a | 09 66 69 6c 6c 5f 65 6c | >= 2).|.fill_el|
|00000d20| 6c 69 70 73 65 28 70 72 | 2c 20 6f 75 74 65 72 5f |lipse(pr|, outer_|
|00000d30| 72 61 64 69 75 73 5f 78 | 2c 20 6f 75 74 65 72 5f |radius_x|, outer_|
|00000d40| 72 61 64 69 75 73 5f 79 | 2c 20 0a 09 09 6f 75 74 |radius_y|, ...out|
|00000d50| 65 72 5f 72 61 64 69 75 | 73 5f 78 2c 20 6f 75 74 |er_radiu|s_x, out|
|00000d60| 65 72 5f 72 61 64 69 75 | 73 5f 79 29 3b 0a 20 20 |er_radiu|s_y);. |
|00000d70| 20 20 0a 2f 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a | ./****|********|
|00000d80| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000d90| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000da0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000db0| 2a 2a 2a 2a 2a 2a 2a 2f | 0a 2f 2a 20 4e 6f 77 20 |*******/|./* Now |
|00000dc0| 77 72 69 74 65 20 74 68 | 65 20 65 6c 6c 69 70 73 |write th|e ellips|
|00000dd0| 65 20 6f 75 74 20 74 6f | 20 74 68 65 20 77 69 6e |e out to| the win|
|00000de0| 64 6f 77 2e 20 20 20 20 | 20 20 20 20 20 20 20 20 |dow. | |
|00000df0| 20 20 20 20 20 20 20 20 | 20 20 20 20 2a 2f 0a 2f | | */./|
|00000e00| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000e10| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000e20| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000e30| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000e40| 2a 2a 2a 2f 0a 20 20 20 | 20 69 6e 6e 65 72 5f 72 |***/. | inner_r|
|00000e50| 61 64 69 75 73 5f 78 20 | 3d 20 69 6e 6e 65 72 5f |adius_x |= inner_|
|00000e60| 72 61 64 69 75 73 5f 79 | 20 3d 20 30 3b 09 2f 2a |radius_y| = 0;./*|
|00000e70| 20 6e 6f 72 6d 61 6c 20 | 73 6f 75 72 63 65 20 6f | normal |source o|
|00000e80| 66 66 73 65 74 20 2a 2f | 0a 20 20 20 20 69 66 20 |ffset */|. if |
|00000e90| 28 28 63 78 20 2d 3d 20 | 6f 75 74 65 72 5f 72 61 |((cx -= |outer_ra|
|00000ea0| 64 69 75 73 5f 78 29 20 | 3c 20 30 29 09 2f 2a 20 |dius_x) |< 0)./* |
|00000eb0| 65 6c 6c 69 70 73 65 20 | 65 78 74 65 6e 64 73 20 |ellipse |extends |
|00000ec0| 62 65 79 6f 6e 64 20 6c | 65 66 74 20 65 64 67 65 |beyond l|eft edge|
|00000ed0| 3f 20 2a 2f 0a 20 20 20 | 20 7b 0a 09 69 6e 6e 65 |? */. | {..inne|
|00000ee0| 72 5f 72 61 64 69 75 73 | 5f 78 20 3d 20 2d 63 78 |r_radius|_x = -cx|
|00000ef0| 3b 0a 09 63 78 20 3d 20 | 30 3b 0a 20 20 20 20 7d |;..cx = |0;. }|
|00000f00| 0a 20 20 20 20 69 66 20 | 28 28 63 79 20 2d 3d 20 |. if |((cy -= |
|00000f10| 6f 75 74 65 72 5f 72 61 | 64 69 75 73 5f 79 29 20 |outer_ra|dius_y) |
|00000f20| 3c 20 30 29 09 2f 2a 20 | 61 62 6f 76 65 20 74 6f |< 0)./* |above to|
|00000f30| 70 20 65 64 67 65 3f 20 | 2a 2f 0a 20 20 20 20 7b |p edge? |*/. {|
|00000f40| 0a 20 20 20 20 09 69 6e | 6e 65 72 5f 72 61 64 69 |. .in|ner_radi|
|00000f50| 75 73 5f 79 20 3d 20 2d | 63 79 3b 0a 09 63 79 20 |us_y = -|cy;..cy |
|00000f60| 3d 20 30 3b 0a 20 20 20 | 20 7d 0a 0a 20 20 20 20 |= 0;. | }.. |
|00000f70| 69 66 20 28 70 61 74 74 | 65 72 6e 5f 70 72 20 3d |if (patt|ern_pr =|
|00000f80| 3d 20 4e 55 4c 4c 29 0a | 20 20 20 20 20 20 20 20 |= NULL).| |
|00000f90| 70 77 5f 77 72 69 74 65 | 20 28 70 77 2c 20 63 78 |pw_write| (pw, cx|
|00000fa0| 2c 20 63 79 2c 20 70 72 | 2d 3e 70 72 5f 73 69 7a |, cy, pr|->pr_siz|
|00000fb0| 65 2e 78 2d 69 6e 6e 65 | 72 5f 72 61 64 69 75 73 |e.x-inne|r_radius|
|00000fc0| 5f 78 2c 20 70 72 2d 3e | 70 72 5f 73 69 7a 65 2e |_x, pr->|pr_size.|
|00000fd0| 79 2d 69 6e 6e 65 72 5f | 72 61 64 69 75 73 5f 79 |y-inner_|radius_y|
|00000fe0| 2c 0a 09 20 20 20 20 50 | 49 58 5f 53 52 43 20 5e |,.. P|IX_SRC ^|
|00000ff0| 20 50 49 58 5f 44 53 54 | 2c 20 70 72 2c 20 69 6e | PIX_DST|, pr, in|
|00001000| 6e 65 72 5f 72 61 64 69 | 75 73 5f 78 2c 20 69 6e |ner_radi|us_x, in|
|00001010| 6e 65 72 5f 72 61 64 69 | 75 73 5f 79 29 3b 0a 20 |ner_radi|us_y);. |
|00001020| 20 20 20 65 6c 73 65 0a | 09 70 77 5f 73 74 65 6e | else.|.pw_sten|
|00001030| 63 69 6c 20 28 70 77 2c | 20 63 78 2c 20 63 79 2c |cil (pw,| cx, cy,|
|00001040| 20 70 72 20 2d 3e 20 70 | 72 5f 73 69 7a 65 2e 78 | pr -> p|r_size.x|
|00001050| 2c 20 70 72 20 2d 3e 20 | 70 72 5f 73 69 7a 65 2e |, pr -> |pr_size.|
|00001060| 79 2c 20 0a 09 20 20 20 | 20 50 49 58 5f 53 52 43 |y, .. | PIX_SRC|
|00001070| 2c 20 70 72 2c 20 69 6e | 6e 65 72 5f 72 61 64 69 |, pr, in|ner_radi|
|00001080| 75 73 5f 78 2c 20 69 6e | 6e 65 72 5f 72 61 64 69 |us_x, in|ner_radi|
|00001090| 75 73 5f 79 2c 20 70 61 | 74 74 65 72 6e 5f 70 72 |us_y, pa|ttern_pr|
|000010a0| 2c 20 30 2c 20 30 29 3b | 0a 0a 20 20 20 20 70 72 |, 0, 0);|.. pr|
|000010b0| 5f 64 65 73 74 72 6f 79 | 20 28 70 72 29 3b 0a 7d |_destroy| (pr);.}|
|000010c0| 0a 0a 0a 2f 2a 20 64 72 | 61 77 20 65 6c 6c 69 70 |.../* dr|aw ellip|
|000010d0| 73 65 20 69 6e 63 72 65 | 6d 65 6e 74 61 6c 6c 79 |se incre|mentally|
|000010e0| 20 2a 2f 0a 73 74 61 74 | 69 63 20 6f 75 74 6c 69 | */.stat|ic outli|
|000010f0| 6e 65 5f 65 6c 6c 69 70 | 73 65 20 28 70 72 2c 20 |ne_ellip|se (pr, |
|00001100| 63 65 6e 74 65 72 5f 78 | 2c 20 63 65 6e 74 65 72 |center_x|, center|
|00001110| 5f 79 2c 20 72 78 2c 20 | 72 79 29 0a 73 74 72 75 |_y, rx, |ry).stru|
|00001120| 63 74 20 70 69 78 72 65 | 63 74 20 2a 70 72 3b 0a |ct pixre|ct *pr;.|
|00001130| 69 6e 74 20 20 20 20 63 | 65 6e 74 65 72 5f 78 2c |int c|enter_x,|
|00001140| 20 63 65 6e 74 65 72 5f | 79 3b 0a 69 6e 74 20 20 | center_|y;.int |
|00001150| 20 20 72 78 2c 20 72 79 | 3b 0a 7b 0a 09 2f 2a 20 | rx, ry|;.{../* |
|00001160| 69 6e 74 65 72 6d 65 64 | 69 61 74 65 20 74 65 72 |intermed|iate ter|
|00001170| 6d 73 20 74 6f 20 73 70 | 65 65 64 20 75 70 20 6c |ms to sp|eed up l|
|00001180| 6f 6f 70 20 2a 2f 0a 09 | 6c 6f 6e 67 20 74 31 20 |oop */..|long t1 |
|00001190| 3d 20 72 78 2a 72 78 2c | 20 74 32 20 3d 20 74 31 |= rx*rx,| t2 = t1|
|000011a0| 3c 3c 31 2c 20 74 33 20 | 3d 20 74 32 3c 3c 31 3b |<<1, t3 |= t2<<1;|
|000011b0| 0a 09 6c 6f 6e 67 20 74 | 34 20 3d 20 72 79 2a 72 |..long t|4 = ry*r|
|000011c0| 79 2c 20 74 35 20 3d 20 | 74 34 3c 3c 31 2c 20 74 |y, t5 = |t4<<1, t|
|000011d0| 36 20 3d 20 74 35 3c 3c | 31 3b 0a 09 6c 6f 6e 67 |6 = t5<<|1;..long|
|000011e0| 20 74 37 20 3d 20 72 78 | 2a 74 35 2c 20 74 38 20 | t7 = rx|*t5, t8 |
|000011f0| 3d 20 74 37 3c 3c 31 2c | 20 74 39 20 3d 20 30 4c |= t7<<1,| t9 = 0L|
|00001200| 3b 0a 09 6c 6f 6e 67 20 | 64 31 20 3d 20 74 32 20 |;..long |d1 = t2 |
|00001210| 2d 20 74 37 20 2b 20 28 | 74 34 3e 3e 31 29 3b 09 |- t7 + (|t4>>1);.|
|00001220| 2f 2a 20 65 72 72 6f 72 | 20 74 65 72 6d 73 20 2a |/* error| terms *|
|00001230| 2f 0a 09 6c 6f 6e 67 20 | 64 32 20 3d 20 28 74 31 |/..long |d2 = (t1|
|00001240| 3e 3e 31 29 20 2d 20 74 | 38 20 2b 20 74 35 3b 0a |>>1) - t|8 + t5;.|
|00001250| 0a 09 72 65 67 69 73 74 | 65 72 20 69 6e 74 20 78 |..regist|er int x|
|00001260| 20 3d 20 72 78 2c 20 79 | 20 3d 20 30 3b 09 2f 2a | = rx, y| = 0;./*|
|00001270| 20 65 6c 6c 69 70 73 65 | 20 70 6f 69 6e 74 73 20 | ellipse| points |
|00001280| 2a 2f 0a 0a 09 77 68 69 | 6c 65 20 28 64 32 20 3c |*/...whi|le (d2 <|
|00001290| 20 30 29 09 09 09 2f 2a | 20 74 69 6c 20 73 6c 6f | 0).../*| til slo|
|000012a0| 70 65 20 3d 20 2d 31 20 | 2a 2f 0a 09 7b 0a 09 09 |pe = -1 |*/..{...|
|000012b0| 2f 2a 20 64 72 61 77 20 | 34 20 70 6f 69 6e 74 73 |/* draw |4 points|
|000012c0| 20 75 73 69 6e 67 20 73 | 79 6d 6d 65 74 72 79 20 | using s|ymmetry |
|000012d0| 2a 2f 0a 09 20 20 20 20 | 09 70 72 5f 70 75 74 20 |*/.. |.pr_put |
|000012e0| 28 70 72 2c 20 63 65 6e | 74 65 72 5f 78 20 2b 20 |(pr, cen|ter_x + |
|000012f0| 78 2c 20 63 65 6e 74 65 | 72 5f 79 20 2b 20 79 2c |x, cente|r_y + y,|
|00001300| 20 31 29 3b 0a 09 20 20 | 20 20 09 70 72 5f 70 75 | 1);.. | .pr_pu|
|00001310| 74 20 28 70 72 2c 20 63 | 65 6e 74 65 72 5f 78 20 |t (pr, c|enter_x |
|00001320| 2b 20 78 2c 20 63 65 6e | 74 65 72 5f 79 20 2d 20 |+ x, cen|ter_y - |
|00001330| 79 2c 20 31 29 3b 0a 09 | 20 20 20 20 09 70 72 5f |y, 1);..| .pr_|
|00001340| 70 75 74 20 28 70 72 2c | 20 63 65 6e 74 65 72 5f |put (pr,| center_|
|00001350| 78 20 2d 20 78 2c 20 63 | 65 6e 74 65 72 5f 79 20 |x - x, c|enter_y |
|00001360| 2b 20 79 2c 20 31 29 3b | 0a 09 20 20 20 20 09 70 |+ y, 1);|.. .p|
|00001370| 72 5f 70 75 74 20 28 70 | 72 2c 20 63 65 6e 74 65 |r_put (p|r, cente|
|00001380| 72 5f 78 20 2d 20 78 2c | 20 63 65 6e 74 65 72 5f |r_x - x,| center_|
|00001390| 79 20 2d 20 79 2c 20 31 | 29 3b 0a 0a 09 09 79 2b |y - y, 1|);....y+|
|000013a0| 2b 3b 09 09 2f 2a 20 61 | 6c 77 61 79 73 20 6d 6f |+;../* a|lways mo|
|000013b0| 76 65 20 75 70 20 68 65 | 72 65 20 2a 2f 0a 09 09 |ve up he|re */...|
|000013c0| 74 39 20 2b 3d 20 74 33 | 3b 09 0a 09 09 69 66 20 |t9 += t3|;....if |
|000013d0| 28 64 31 20 3c 20 30 29 | 09 2f 2a 20 6d 6f 76 65 |(d1 < 0)|./* move|
|000013e0| 20 73 74 72 61 69 67 68 | 74 20 75 70 20 2a 2f 0a | straigh|t up */.|
|000013f0| 09 09 7b 0a 09 09 09 64 | 31 20 2b 3d 20 74 39 20 |..{....d|1 += t9 |
|00001400| 2b 20 74 32 3b 0a 09 09 | 09 64 32 20 2b 3d 20 74 |+ t2;...|.d2 += t|
|00001410| 39 3b 0a 09 09 7d 0a 09 | 09 65 6c 73 65 09 09 2f |9;...}..|.else../|
|00001420| 2a 20 6d 6f 76 65 20 75 | 70 20 61 6e 64 20 6c 65 |* move u|p and le|
|00001430| 66 74 20 2a 2f 0a 09 09 | 7b 0a 09 09 09 78 2d 2d |ft */...|{....x--|
|00001440| 3b 0a 09 09 09 74 38 20 | 2d 3d 20 74 36 3b 0a 09 |;....t8 |-= t6;..|
|00001450| 09 09 64 31 20 2b 3d 20 | 74 39 20 2b 20 74 32 20 |..d1 += |t9 + t2 |
|00001460| 2d 20 74 38 3b 0a 09 09 | 09 64 32 20 2b 3d 20 74 |- t8;...|.d2 += t|
|00001470| 39 20 2b 20 74 35 20 2d | 20 74 38 3b 0a 09 09 7d |9 + t5 -| t8;...}|
|00001480| 0a 09 7d 0a 0a 09 64 6f | 20 09 09 09 09 2f 2a 20 |..}...do| ..../* |
|00001490| 72 65 73 74 20 6f 66 20 | 74 6f 70 20 72 69 67 68 |rest of |top righ|
|000014a0| 74 20 71 75 61 64 72 61 | 6e 74 20 2a 2f 0a 09 7b |t quadra|nt */..{|
|000014b0| 0a 09 09 2f 2a 20 64 72 | 61 77 20 34 20 70 6f 69 |.../* dr|aw 4 poi|
|000014c0| 6e 74 73 20 75 73 69 6e | 67 20 73 79 6d 6d 65 74 |nts usin|g symmet|
|000014d0| 72 79 20 2a 2f 0a 09 20 | 20 20 20 09 70 72 5f 70 |ry */.. | .pr_p|
|000014e0| 75 74 20 28 70 72 2c 20 | 63 65 6e 74 65 72 5f 78 |ut (pr, |center_x|
|000014f0| 20 2b 20 78 2c 20 63 65 | 6e 74 65 72 5f 79 20 2b | + x, ce|nter_y +|
|00001500| 20 79 2c 20 31 29 3b 0a | 09 20 20 20 20 09 70 72 | y, 1);.|. .pr|
|00001510| 5f 70 75 74 20 28 70 72 | 2c 20 63 65 6e 74 65 72 |_put (pr|, center|
|00001520| 5f 78 20 2b 20 78 2c 20 | 63 65 6e 74 65 72 5f 79 |_x + x, |center_y|
|00001530| 20 2d 20 79 2c 20 31 29 | 3b 0a 09 20 20 20 20 09 | - y, 1)|;.. .|
|00001540| 70 72 5f 70 75 74 20 28 | 70 72 2c 20 63 65 6e 74 |pr_put (|pr, cent|
|00001550| 65 72 5f 78 20 2d 20 78 | 2c 20 63 65 6e 74 65 72 |er_x - x|, center|
|00001560| 5f 79 20 2b 20 79 2c 20 | 31 29 3b 0a 09 20 20 20 |_y + y, |1);.. |
|00001570| 20 09 70 72 5f 70 75 74 | 20 28 70 72 2c 20 63 65 | .pr_put| (pr, ce|
|00001580| 6e 74 65 72 5f 78 20 2d | 20 78 2c 20 63 65 6e 74 |nter_x -| x, cent|
|00001590| 65 72 5f 79 20 2d 20 79 | 2c 20 31 29 3b 0a 0a 09 |er_y - y|, 1);...|
|000015a0| 09 78 2d 2d 3b 09 09 2f | 2a 20 61 6c 77 61 79 73 |.x--;../|* always|
|000015b0| 20 6d 6f 76 65 20 6c 65 | 66 74 20 68 65 72 65 20 | move le|ft here |
|000015c0| 2a 2f 0a 09 09 74 38 20 | 2d 3d 20 74 36 3b 09 0a |*/...t8 |-= t6;..|
|000015d0| 09 09 69 66 20 28 64 32 | 20 3c 20 30 29 09 2f 2a |..if (d2| < 0)./*|
|000015e0| 20 6d 6f 76 65 20 75 70 | 20 61 6e 64 20 6c 65 66 | move up| and lef|
|000015f0| 74 20 2a 2f 0a 09 09 7b | 0a 09 09 09 79 2b 2b 3b |t */...{|....y++;|
|00001600| 0a 09 09 09 74 39 20 2b | 3d 20 74 33 3b 0a 09 09 |....t9 +|= t3;...|
|00001610| 09 64 32 20 2b 3d 20 74 | 39 20 2b 20 74 35 20 2d |.d2 += t|9 + t5 -|
|00001620| 20 74 38 3b 0a 09 09 7d | 0a 09 09 65 6c 73 65 09 | t8;...}|...else.|
|00001630| 09 2f 2a 20 6d 6f 76 65 | 20 73 74 72 61 69 67 68 |./* move| straigh|
|00001640| 74 20 6c 65 66 74 20 2a | 2f 0a 09 09 09 64 32 20 |t left *|/....d2 |
|00001650| 2b 3d 20 74 35 20 2d 20 | 74 38 3b 0a 09 7d 20 77 |+= t5 - |t8;..} w|
|00001660| 68 69 6c 65 20 28 78 3e | 3d 30 29 3b 0a 7d 0a 0a |hile (x>|=0);.}..|
|00001670| 0a 73 74 61 74 69 63 20 | 66 69 6c 6c 5f 65 6c 6c |.static |fill_ell|
|00001680| 69 70 73 65 20 28 70 72 | 2c 20 63 65 6e 74 65 72 |ipse (pr|, center|
|00001690| 5f 78 2c 20 63 65 6e 74 | 65 72 5f 79 2c 20 72 78 |_x, cent|er_y, rx|
|000016a0| 2c 20 72 79 29 0a 73 74 | 72 75 63 74 20 70 69 78 |, ry).st|ruct pix|
|000016b0| 72 65 63 74 20 2a 70 72 | 3b 0a 69 6e 74 20 20 20 |rect *pr|;.int |
|000016c0| 20 63 65 6e 74 65 72 5f | 78 2c 20 63 65 6e 74 65 | center_|x, cente|
|000016d0| 72 5f 79 3b 0a 69 6e 74 | 20 20 20 20 72 78 2c 20 |r_y;.int| rx, |
|000016e0| 72 79 3b 0a 7b 0a 09 6c | 6f 6e 67 20 74 31 20 3d |ry;.{..l|ong t1 =|
|000016f0| 20 72 78 2a 72 78 2c 20 | 74 32 20 3d 20 74 31 3c | rx*rx, |t2 = t1<|
|00001700| 3c 31 2c 20 74 33 20 3d | 20 74 32 3c 3c 31 3b 0a |<1, t3 =| t2<<1;.|
|00001710| 09 6c 6f 6e 67 20 74 34 | 20 3d 20 72 79 2a 72 79 |.long t4| = ry*ry|
|00001720| 2c 20 74 35 20 3d 20 74 | 34 3c 3c 31 2c 20 74 36 |, t5 = t|4<<1, t6|
|00001730| 20 3d 20 74 35 3c 3c 31 | 3b 0a 09 6c 6f 6e 67 20 | = t5<<1|;..long |
|00001740| 74 37 20 3d 20 72 78 2a | 74 35 2c 20 74 38 20 3d |t7 = rx*|t5, t8 =|
|00001750| 20 74 37 3c 3c 31 2c 20 | 74 39 20 3d 20 30 3b 0a | t7<<1, |t9 = 0;.|
|00001760| 09 6c 6f 6e 67 20 64 31 | 20 3d 20 74 32 20 2d 20 |.long d1| = t2 - |
|00001770| 74 37 20 2b 20 28 74 34 | 3e 3e 31 29 3b 09 2f 2a |t7 + (t4|>>1);./*|
|00001780| 20 65 72 72 6f 72 20 74 | 65 72 6d 73 20 2a 2f 0a | error t|erms */.|
|00001790| 09 6c 6f 6e 67 20 64 32 | 20 3d 20 28 74 31 3e 3e |.long d2| = (t1>>|
|000017a0| 31 29 20 2d 20 74 38 20 | 2b 20 74 35 3b 0a 09 72 |1) - t8 |+ t5;..r|
|000017b0| 65 67 69 73 74 65 72 20 | 69 6e 74 20 78 20 3d 20 |egister |int x = |
|000017c0| 72 78 2c 20 79 20 3d 20 | 30 3b 09 2f 2a 20 65 6c |rx, y = |0;./* el|
|000017d0| 6c 69 70 73 65 20 70 6f | 69 6e 74 73 20 2a 2f 0a |lipse po|ints */.|
|000017e0| 20 20 20 20 20 20 20 20 | 72 65 67 69 73 74 65 72 | |register|
|000017f0| 20 69 6e 74 20 74 3b 09 | 09 09 2f 2a 20 75 73 65 | int t;.|../* use|
|00001800| 64 20 69 6e 20 66 69 6c | 6c 20 6f 70 65 72 61 74 |d in fil|l operat|
|00001810| 69 6f 6e 20 2a 2f 0a 09 | 69 6e 74 20 77 69 64 3b |ion */..|int wid;|
|00001820| 09 09 09 2f 2a 20 77 69 | 64 74 68 20 6f 66 20 66 |.../* wi|dth of f|
|00001830| 69 6c 6c 20 2a 2f 0a 0a | 09 77 68 69 6c 65 20 28 |ill */..|.while (|
|00001840| 64 32 20 3c 20 30 29 09 | 09 09 2f 2a 20 74 69 6c |d2 < 0).|../* til|
|00001850| 20 73 6c 6f 70 65 20 3d | 20 2d 31 20 2a 2f 0a 09 | slope =| -1 */..|
|00001860| 7b 0a 09 20 09 2f 2a 20 | 66 69 6c 6c 20 69 6e 20 |{.. ./* |fill in |
|00001870| 6c 65 66 74 77 61 72 64 | 20 74 6f 20 69 6e 6e 65 |leftward| to inne|
|00001880| 72 20 65 6c 6c 69 70 73 | 65 20 2a 2f 0a 09 20 20 |r ellips|e */.. |
|00001890| 20 20 09 66 6f 72 20 28 | 74 3d 78 3b 20 28 21 70 | .for (|t=x; (!p|
|000018a0| 72 5f 67 65 74 28 70 72 | 2c 20 63 65 6e 74 65 72 |r_get(pr|, center|
|000018b0| 5f 78 2b 74 2c 20 63 65 | 6e 74 65 72 5f 79 2b 79 |_x+t, ce|nter_y+y|
|000018c0| 29 29 20 26 26 20 74 3b | 20 74 2d 2d 29 3b 0a 09 |)) && t;| t--);..|
|000018d0| 09 77 69 64 20 3d 20 78 | 20 2d 20 74 20 2b 20 31 |.wid = x| - t + 1|
|000018e0| 3b 0a 09 09 70 72 5f 72 | 6f 70 20 28 70 72 2c 20 |;...pr_r|op (pr, |
|000018f0| 63 65 6e 74 65 72 5f 78 | 2b 74 2c 20 63 65 6e 74 |center_x|+t, cent|
|00001900| 65 72 5f 79 2b 79 2c 20 | 77 69 64 2c 20 31 2c 0a |er_y+y, |wid, 1,.|
|00001910| 09 09 09 50 49 58 5f 53 | 45 54 20 7c 20 50 49 58 |...PIX_S|ET | PIX|
|00001920| 5f 44 4f 4e 54 43 4c 49 | 50 2c 20 4e 55 4c 4c 2c |_DONTCLI|P, NULL,|
|00001930| 20 30 2c 20 30 29 3b 0a | 09 09 70 72 5f 72 6f 70 | 0, 0);.|..pr_rop|
|00001940| 20 28 70 72 2c 20 63 65 | 6e 74 65 72 5f 78 2d 78 | (pr, ce|nter_x-x|
|00001950| 2c 20 63 65 6e 74 65 72 | 5f 79 2b 79 2c 20 77 69 |, center|_y+y, wi|
|00001960| 64 2c 20 31 2c 0a 09 09 | 09 50 49 58 5f 53 45 54 |d, 1,...|.PIX_SET|
|00001970| 20 7c 20 50 49 58 5f 44 | 4f 4e 54 43 4c 49 50 2c | | PIX_D|ONTCLIP,|
|00001980| 20 4e 55 4c 4c 2c 20 30 | 2c 20 30 29 3b 0a 09 09 | NULL, 0|, 0);...|
|00001990| 70 72 5f 72 6f 70 20 28 | 70 72 2c 20 63 65 6e 74 |pr_rop (|pr, cent|
|000019a0| 65 72 5f 78 2b 74 2c 20 | 63 65 6e 74 65 72 5f 79 |er_x+t, |center_y|
|000019b0| 2d 79 2c 20 77 69 64 2c | 20 31 2c 0a 09 09 09 50 |-y, wid,| 1,....P|
|000019c0| 49 58 5f 53 45 54 20 7c | 20 50 49 58 5f 44 4f 4e |IX_SET || PIX_DON|
|000019d0| 54 43 4c 49 50 2c 20 4e | 55 4c 4c 2c 20 30 2c 20 |TCLIP, N|ULL, 0, |
|000019e0| 30 29 3b 0a 09 09 70 72 | 5f 72 6f 70 20 28 70 72 |0);...pr|_rop (pr|
|000019f0| 2c 20 63 65 6e 74 65 72 | 5f 78 2d 78 2c 20 63 65 |, center|_x-x, ce|
|00001a00| 6e 74 65 72 5f 79 2d 79 | 2c 20 77 69 64 2c 20 31 |nter_y-y|, wid, 1|
|00001a10| 2c 0a 09 09 09 50 49 58 | 5f 53 45 54 20 7c 20 50 |,....PIX|_SET | P|
|00001a20| 49 58 5f 44 4f 4e 54 43 | 4c 49 50 2c 20 4e 55 4c |IX_DONTC|LIP, NUL|
|00001a30| 4c 2c 20 30 2c 20 30 29 | 3b 0a 0a 09 09 79 2b 2b |L, 0, 0)|;....y++|
|00001a40| 3b 09 09 2f 2a 20 61 6c | 77 61 79 73 20 6d 6f 76 |;../* al|ways mov|
|00001a50| 65 20 75 70 20 68 65 72 | 65 20 2a 2f 0a 09 09 74 |e up her|e */...t|
|00001a60| 39 20 2b 3d 20 74 33 3b | 09 0a 09 09 69 66 20 28 |9 += t3;|....if (|
|00001a70| 64 31 20 3c 20 30 29 09 | 2f 2a 20 6d 6f 76 65 20 |d1 < 0).|/* move |
|00001a80| 73 74 72 61 69 67 68 74 | 20 75 70 20 2a 2f 0a 09 |straight| up */..|
|00001a90| 09 7b 0a 09 09 09 64 31 | 20 2b 3d 20 74 39 20 2b |.{....d1| += t9 +|
|00001aa0| 20 74 32 3b 0a 09 09 09 | 64 32 20 2b 3d 20 74 39 | t2;....|d2 += t9|
|00001ab0| 3b 0a 09 09 7d 0a 09 09 | 65 6c 73 65 09 09 2f 2a |;...}...|else../*|
|00001ac0| 20 6d 6f 76 65 20 75 70 | 20 61 6e 64 20 6c 65 66 | move up| and lef|
|00001ad0| 74 20 2a 2f 0a 09 09 7b | 0a 09 09 09 78 2d 2d 3b |t */...{|....x--;|
|00001ae0| 0a 09 09 09 74 38 20 2d | 3d 20 74 36 3b 0a 09 09 |....t8 -|= t6;...|
|00001af0| 09 64 31 20 2b 3d 20 74 | 39 20 2b 20 74 32 20 2d |.d1 += t|9 + t2 -|
|00001b00| 20 74 38 3b 0a 09 09 09 | 64 32 20 2b 3d 20 74 39 | t8;....|d2 += t9|
|00001b10| 20 2b 20 74 35 20 2d 20 | 74 38 3b 0a 09 09 7d 0a | + t5 - |t8;...}.|
|00001b20| 09 7d 0a 0a 09 64 6f 20 | 09 09 09 09 2f 2a 20 72 |.}...do |..../* r|
|00001b30| 65 73 74 20 6f 66 20 74 | 6f 70 20 72 69 67 68 74 |est of t|op right|
|00001b40| 20 71 75 61 64 72 61 6e | 74 20 2a 2f 0a 09 7b 0a | quadran|t */..{.|
|00001b50| 09 09 2f 2a 20 66 69 6c | 6c 20 69 6e 20 64 6f 77 |../* fil|l in dow|
|00001b60| 6e 77 61 72 64 20 74 6f | 20 69 6e 6e 65 72 20 65 |nward to| inner e|
|00001b70| 6c 6c 69 70 73 65 20 2a | 2f 0a 09 20 20 20 20 09 |llipse *|/.. .|
|00001b80| 66 6f 72 20 28 74 3d 79 | 3b 20 28 21 70 72 5f 67 |for (t=y|; (!pr_g|
|00001b90| 65 74 28 70 72 2c 20 63 | 65 6e 74 65 72 5f 78 2b |et(pr, c|enter_x+|
|00001ba0| 78 2c 20 63 65 6e 74 65 | 72 5f 79 2b 74 29 29 20 |x, cente|r_y+t)) |
|00001bb0| 26 26 20 74 3b 20 74 2d | 2d 29 3b 0a 09 09 77 69 |&& t; t-|-);...wi|
|00001bc0| 64 20 3d 20 79 20 2d 20 | 74 20 2b 20 31 3b 0a 09 |d = y - |t + 1;..|
|00001bd0| 09 70 72 5f 72 6f 70 20 | 28 70 72 2c 20 63 65 6e |.pr_rop |(pr, cen|
|00001be0| 74 65 72 5f 78 2b 78 2c | 20 63 65 6e 74 65 72 5f |ter_x+x,| center_|
|00001bf0| 79 2b 74 2c 20 31 2c 20 | 77 69 64 2c 0a 09 09 09 |y+t, 1, |wid,....|
|00001c00| 50 49 58 5f 53 45 54 20 | 7c 20 50 49 58 5f 44 4f |PIX_SET || PIX_DO|
|00001c10| 4e 54 43 4c 49 50 2c 20 | 4e 55 4c 4c 2c 20 30 2c |NTCLIP, |NULL, 0,|
|00001c20| 20 30 29 3b 0a 09 09 70 | 72 5f 72 6f 70 20 28 70 | 0);...p|r_rop (p|
|00001c30| 72 2c 20 63 65 6e 74 65 | 72 5f 78 2b 78 2c 20 63 |r, cente|r_x+x, c|
|00001c40| 65 6e 74 65 72 5f 79 2d | 79 2c 20 31 2c 20 77 69 |enter_y-|y, 1, wi|
|00001c50| 64 2c 0a 09 09 09 50 49 | 58 5f 53 45 54 20 7c 20 |d,....PI|X_SET | |
|00001c60| 50 49 58 5f 44 4f 4e 54 | 43 4c 49 50 2c 20 4e 55 |PIX_DONT|CLIP, NU|
|00001c70| 4c 4c 2c 20 30 2c 20 30 | 29 3b 0a 09 09 70 72 5f |LL, 0, 0|);...pr_|
|00001c80| 72 6f 70 20 28 70 72 2c | 20 63 65 6e 74 65 72 5f |rop (pr,| center_|
|00001c90| 78 2d 78 2c 20 63 65 6e | 74 65 72 5f 79 2b 74 2c |x-x, cen|ter_y+t,|
|00001ca0| 20 31 2c 20 77 69 64 2c | 0a 09 09 09 50 49 58 5f | 1, wid,|....PIX_|
|00001cb0| 53 45 54 20 7c 20 50 49 | 58 5f 44 4f 4e 54 43 4c |SET | PI|X_DONTCL|
|00001cc0| 49 50 2c 20 4e 55 4c 4c | 2c 20 30 2c 20 30 29 3b |IP, NULL|, 0, 0);|
|00001cd0| 0a 09 09 70 72 5f 72 6f | 70 20 28 70 72 2c 20 63 |...pr_ro|p (pr, c|
|00001ce0| 65 6e 74 65 72 5f 78 2d | 78 2c 20 63 65 6e 74 65 |enter_x-|x, cente|
|00001cf0| 72 5f 79 2d 79 2c 20 31 | 2c 20 77 69 64 2c 0a 09 |r_y-y, 1|, wid,..|
|00001d00| 09 09 50 49 58 5f 53 45 | 54 20 7c 20 50 49 58 5f |..PIX_SE|T | PIX_|
|00001d10| 44 4f 4e 54 43 4c 49 50 | 2c 20 4e 55 4c 4c 2c 20 |DONTCLIP|, NULL, |
|00001d20| 30 2c 20 30 29 3b 0a 0a | 09 09 78 2d 2d 3b 09 09 |0, 0);..|..x--;..|
|00001d30| 2f 2a 20 61 6c 77 61 79 | 73 20 6d 6f 76 65 20 6c |/* alway|s move l|
|00001d40| 65 66 74 20 68 65 72 65 | 20 2a 2f 0a 09 09 74 38 |eft here| */...t8|
|00001d50| 20 2d 3d 20 74 36 3b 09 | 0a 09 09 69 66 20 28 64 | -= t6;.|...if (d|
|00001d60| 32 20 3c 20 30 29 09 2f | 2a 20 6d 6f 76 65 20 75 |2 < 0)./|* move u|
|00001d70| 70 20 61 6e 64 20 6c 65 | 66 74 20 2a 2f 0a 09 09 |p and le|ft */...|
|00001d80| 7b 0a 09 09 09 79 2b 2b | 3b 0a 09 09 09 74 39 20 |{....y++|;....t9 |
|00001d90| 2b 3d 20 74 33 3b 0a 09 | 09 09 64 32 20 2b 3d 20 |+= t3;..|..d2 += |
|00001da0| 74 39 20 2b 20 74 35 20 | 2d 20 74 38 3b 0a 09 09 |t9 + t5 |- t8;...|
|00001db0| 7d 0a 09 09 65 6c 73 65 | 09 09 2f 2a 20 6d 6f 76 |}...else|../* mov|
|00001dc0| 65 20 73 74 72 61 69 67 | 68 74 20 6c 65 66 74 20 |e straig|ht left |
|00001dd0| 2a 2f 0a 09 09 7b 0a 09 | 09 09 64 32 20 2b 3d 20 |*/...{..|..d2 += |
|00001de0| 74 35 20 2d 20 74 38 3b | 0a 09 09 7d 0a 09 7d 20 |t5 - t8;|...}..} |
|00001df0| 77 68 69 6c 65 20 28 78 | 3e 3d 30 29 3b 0a 7d 0a |while (x|>=0);.}.|
|00001e00| 2d 2d 20 0a 4a 61 63 6b | 20 43 2e 20 4d 6f 72 72 |-- .Jack| C. Morr|
|00001e10| 69 73 6f 6e 09 4a 65 74 | 20 50 72 6f 70 75 6c 73 |ison.Jet| Propuls|
|00001e20| 69 6f 6e 20 4c 61 62 6f | 72 61 74 6f 72 79 0a 28 |ion Labo|ratory.(|
|00001e30| 38 31 38 29 33 35 34 2d | 31 34 36 33 09 09 6a 61 |818)354-|1463..ja|
|00001e40| 63 6b 6d 40 6a 70 6c 2d | 64 65 76 76 61 78 2e 6a |ckm@jpl-|devvax.j|
|00001e50| 70 6c 2e 6e 61 73 61 2e | 67 6f 76 0a 22 54 68 65 |pl.nasa.|gov."The|
|00001e60| 20 70 61 79 63 68 65 63 | 6b 20 69 73 20 70 61 72 | paychec|k is par|
|00001e70| 74 20 67 6f 76 65 72 6e | 6d 65 6e 74 20 70 72 6f |t govern|ment pro|
|00001e80| 70 65 72 74 79 2c 20 62 | 75 74 20 74 68 65 20 6f |perty, b|ut the o|
|00001e90| 70 69 6e 69 6f 6e 73 20 | 61 72 65 20 61 6c 6c 20 |pinions |are all |
|00001ea0| 6d 69 6e 65 2e 22 0a 0a | 0a |mine."..|. |
+--------+-------------------------+-------------------------+--------+--------+